/******************************************************************************
* 文件名称: irq.h
* 内容摘要: 硬盘驱动头文件
* 创建者の: 孔佳伟
* 个人主页: https://gitee.com/thin-wind/jump
* 修改记录: 
******************************************************************************/

#ifndef __HD_H_
#define __HD_H_

#ifdef __cplusplus
extern "C" {
#endif

#include <common.h>

#define SEC_SIZE        512         // 扇区大小

/******************************************************************************
* 函数名称: void HardDiskInit(void)
* 功能说明: 硬盘初始化
* 输入参数: 无
* 输出参数: 无
* 函数返回: 无
* 其它说明: 无
******************************************************************************/
void HardDiskInit(void);

/******************************************************************************
* 函数名称: E_RET HardDiskRead(U32 sn, U08* buf)
* 功能说明: 读硬盘 sn 号扇区中的数据到 buf 中
* 输入参数: U32 sn      --扇区号
    　　　　U08* buf    --数据区
* 输出参数: 无
* 函数返回: E_OK:成功; E_ERR:失败
* 其它说明: 一次性读取一整个扇区 SEC_SIZE 字节数据
******************************************************************************/
E_RET HardDiskRead(U32 sn, U08* buf);

/******************************************************************************
* 函数名称: E_RET HardDiskWrite(U32 sn, U08* buf)
* 功能说明: 将 buf 中的数据写入到硬盘 sn 号扇区中
* 输入参数: U32 sn      --扇区号
    　　　　U08* buf    --数据区
* 输出参数: 无
* 函数返回: E_OK:成功; E_ERR:失败
* 其它说明: 一次性写入一整个扇区 SEC_SIZE 字节数据
******************************************************************************/
E_RET HardDiskWrite(U32 sn, U08* buf);

/******************************************************************************
* 函数名称: U32 GetHardDiskSectors(void)
* 功能说明: 获取硬盘总扇区数
* 输入参数: 无
* 输出参数: 无
* 函数返回: 返回硬盘总扇区数
* 其它说明: 无
******************************************************************************/
U32 GetHardDiskSectors(void);


#ifdef __cplusplus
}
#endif

#endif

